/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package cube.estructura.per;

import cube.estructura.obj.Cancha;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Leonardo
 */
public class CanchaPer
{  
   public static Cancha obtenerCancha(Connection con, long xIdCancha, long xIdClubDeportivo) throws Exception
   {
        Cancha objCancha = new Cancha();

        try
        {
            PreparedStatement st=con.prepareStatement("select * " +
                                                       "from CANCHA "+
                                                         "where ID_CANCHA=? and "+
                                                         "ID_CLUB_DEPORTIVO=? ");
            st.setLong(1, xIdCancha);
            st.setLong(2, xIdClubDeportivo);

            ResultSet resultado = st.executeQuery();

            if(resultado.next())
            {
                objCancha.setIdCancha(resultado.getLong("ID_CANCHA"));
                objCancha.setIdClubDeportivo(resultado.getLong("ID_CLUB_DEPORTIVO"));
                objCancha.setImagen(resultado.getByte("IMAGEN"));
                objCancha.setNombre(resultado.getString("NOMBRE"));
                objCancha.setEstado(resultado.getString("ESTADO"));
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return objCancha;
   }

   public static boolean existeCancha(Connection con, long xIdCancha, long xIdClubDeportivo) throws Exception
   {
        try
        {
            PreparedStatement st=con.prepareStatement("select count(*) as EXISTE " +
                                                      "from CANCHA " +
                                                         "where ID_CANCHA=? and "+
                                                         "ID_CLUB_DEPORTIVO=? ");

            st.setLong(1, xIdCancha);
            st.setLong(2, xIdClubDeportivo);

            ResultSet resultado = st.executeQuery();

            if (resultado.next())
            {
                if (resultado.getInt("EXISTE")==0)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return false;
   }

   public static ArrayList<Cancha> obtenerColeccionCancha(Connection con) throws Exception
   {
        ArrayList colCancha = new ArrayList();

        try
        {
            PreparedStatement st=con.prepareStatement("select * " +
                                                      "from CANCHA");

            ResultSet resultado = st.executeQuery();

            while (resultado.next())
            {
                Cancha objCancha = new Cancha();

                objCancha.setIdCancha(resultado.getLong("ID_CANCHA"));
                objCancha.setIdClubDeportivo(resultado.getLong("ID_CLUB_DEPORTIVO"));
                objCancha.setImagen(resultado.getByte("IMAGEN"));
                objCancha.setNombre(resultado.getString("NOMBRE"));
                objCancha.setEstado(resultado.getString("ESTADO"));

                colCancha.add(objCancha);
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return colCancha;
    }

    public static void altaCancha(Connection con, Cancha xObjCancha) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement("insert into CANCHA " +
                                                      "values (?,?,?,?,?)");

            st.setLong(1, xObjCancha.getIdCancha());
            st.setLong(2, xObjCancha.getIdClubDeportivo());
            st.setByte(3, xObjCancha.getImagen());
            st.setString(4, xObjCancha.getNombre());
            st.setString(5, xObjCancha.getEstado());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }

    public static void bajaCancha(Connection con, Cancha xObjCancha) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement("delete from CANCHA " +
                                                         "where ID_CANCHA=? and "+
                                                         "ID_CLUB_DEPORTIVO=? ");

            st.setLong(1, xObjCancha.getIdCancha());
            st.setLong(2, xObjCancha.getIdClubDeportivo());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }

    public static void modificaCancha(Connection con, Cancha xObjCancha) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement("update CANCHA " +
                                                      "set IMAGEN=?, "+
                                                      "NOMBRE=?, "+
                                                      "ESTADO=? "+
                                                         "where ID_CANCHA=? and "+
                                                         "ID_CLUB_DEPORTIVO=? ");

            st.setByte(1, xObjCancha.getImagen());
            st.setString(2, xObjCancha.getNombre());
            st.setString(3, xObjCancha.getEstado());
            st.setLong(4, xObjCancha.getIdCancha());
            st.setLong(5, xObjCancha.getIdClubDeportivo());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }
}
